Method for generating customized ink/media transforms

ABSTRACT

The present invention is directed to an improved system and methodology for generating ink/media transforms. A preferred methodology comprises one or more of the following steps: selecting the ink type; selecting the color set; selecting the media type; selecting the ink saturation level; generating a set of “linearization” color samples, or “ramps”; measuring the linearization ramps; generating a set of “target” color samples, or “patches”; measuring the target patches; screening the target patches and generating the boundary surface of a printer&#39;s gamut; implementing an under-color removal (UCR) and black generation (BG); and building the Printer Profile, Transforms and ICC Color Profiles.

RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. ProvisionalApplication No. 60/333,329, filed Nov. 26, 2001.

[0002] The present invention is generally directed to acolor-management/color-correction system and methodology for enablingusers to create custom ink/media color transforms using, for example andnot limitation, up to eight (8) different process ink colors which mayinclude multi-density process colors (e.g., C2M2YK, C3M3YKROGB) in aprinter. The proposed methodology can be generalized for the building ofn-different process ink color transforms. The present invention is alsodirected to a unique system and methodology for calibrating orfine-tuning pre-built ink/media transforms that are provided as part ofa print server software, as well as a system and methodology forallowing end users to create the custom transforms. The presentinvention is also directed to providing the ability to view andmanipulate a range of different image properties after a print job hasbeen raster image-processed (or “ripped”) by the print server inpreparation for printing. Finally, the present invention is directed toa system and methodology that can be incorporated into an ICC colormanagement workflow by providing for the creation of ICC profiles thatcan be uploaded to the end user's workstation.

BACKGROUND OF THE INVENTION

[0003] The basic problem of color management lies in translating a coloras described by one device (source) for use by another device (target)that will reproduce it. The target device may or may not describe colorin the same way as the source device.

[0004] For example, say an end user selects a certain color for anobject within a graphics application. When the graphic image is producedon a printer, the selected color should match, as closely as possible,the original color. The source color is described by the graphicsapplication as a set of values: for example, in L*a*b color space theselected color might be L=50, a=60, b=80, a shade of red. If the targetdevice, the printer, described color in the same way, and had availablethat particular shade of red in its ink set, all would be well. A colorcorrespondence, or match, between the source and target devices has beeneffected perfectly. The problem, of course, is that the printer is veryunlikely to actually have the color of ink requested. Color printersgenerally rely on a very limited set of ink colors to reproduce images,most often four color inks (CMYK) but sometimes as many as twelve(C3M3YKROGB) or more color inks. Since the target device doesn't haveink that matches the specified color, it must attempt to reproduce thecolor using one or another combination of inks from the limited set ofcolors it has available.

[0005] Therein lies the problem of color management: How does theprinter determine how much of each of the available colors of ink to usein reproducing the specific source color? This problem can be subdividedinto two smaller, more manageable problems:

[0006] 1) When known quantities of ink from the available ink set areprinted together, what colors result? Characterizing the range of colorsthat are reproducible can solve this problem by the target device. Thedevice characterization entails printing and measuring a large number ofsample colors for each set of ink colors and type of media used. Thelarge data set thus generated must be post-processed to reduce the dataset overall and to improve the quality of the data in best representingthe gamut; and

[0007] 2) By knowing the colors that result from mixing the inks invarious combinations, how can solve the reverse problem of determininghow much of each ink to use for a specified source color? Developing acomputational model that translates, or transforms, the description ofthe color can solve this problem by the source device into a descriptionof the color for the target device, or printer.

[0008] To solve these problems, a color management system requires threecomponents: a reference color space, device profiles, and acolor-matching engine.

[0009] The reference color space is one of the CIE-defined models(CIEXYZ, CIELAB, etc.). The reference color space (FIG. 1) is a familyof mathematical models that describe color in terms of the three primaryconstituents that describe normal human color vision.

[0010] A device profile is a representation of how the color produced bya particular device, be it a scanner (input device), monitor (displaydevice), or printer (output device), deviates from a color norm. Forexample, to profile a scanner, we scan a printed target containing knownCIE color values, then compare the RGB values produced by the scanner.The deviation between target values and actual values are then noted andsaved in the device profile. The deviation values are then used to makeadjustments.

[0011] The color-matching engine does the work of adjusting colors forspecific devices so that the color produced is consistent with the colorrequested. The engine needs both a source profile and a target profile.The source profile is typically the profile of the monitor on which animage is created, or the scanner on which an image is captured. Thetarget profile is that of the printer. The color-matching engineevaluates the device-specific colors generated by a source device (e.g.,monitor or scanner), usually RGB values, to determine the referencecolor space values (e.g., CIElab), then converts those reference colorvalues into the device-specific process colors (e.g., CMYK, C2M2YK,CMYKROGB) of the target device, or printer.

[0012] A chief obstacle in successful color conversion is the differencein device color gamut. A device color gamut is the range of colors thatthe device is able to produce (FIG. 2). To specify the process oftranslation of an image to the color gamut of a destination device oneuses the concept of rendering intent. This concept specifies the colorgamut-matching strategy. According to the ICC specifications there arefour rendering intents: relative calorimetric matching, perceptualmatching and saturation matching and absolute colorimetric matching. Inrelative calorimetric matching, colors that are common to both devices(i.e., an input device and an output device are rendered exactly, whilecolors that fall outside the gamut of the target device are adjusted (ormapped) to the next-closest equivalent. Relative Colorimetric renderingintent is suitable for precise color matching. In perceptual renderingintent, every color may be adjusted, while overall color relationshipsare preserved. This method is successful because the human eye issensitive to detecting color relationships but is less sensitive todetecting absolute colors. In the case of Saturation rendering intentthe colors are pushed towards the gamut boundary such that the maximumsaturation has been achieved. This type of color matching is suitablefor graphics presentation. In the case of the Absolute Colorimetricrendering intent the native white point of the source image is beenpreserved instead of mapping to D50 relative. The product of mappingfrom a device-independent color space (Profile Connection Space, i.e.CIELab, RGB) to a device-dependent color representation of a printer orscanner is called a transform. A transform is basically a look-up table(LUT) that contains a large data set, or matrix, of color values (FIG.3) representing the gamut of the target device (i.e., its range ofreproducible colors) as applied to the reference color space (e.g.,CIElab) for a particular ink/media combination. The LUT includes a dataset that represents the reference color space and the matrix of colorvalues representing the target device gamut is organized in relation toit. FIG. 4 illustrates a 6×6×6 3D matrix of color values represented asan exploded color cube. Matrix color data that must be interpolated frommeasured target patch data is shown as gray faces on the mini-cubes.

[0013] In operation, a source color is specified by an input device(e.g., a graphics application) and transmitted to an output device (e.g.a server/printer) for rendering an image. The source color (e.g.,RGB=100,0,0) is first converted to the reference color space and thenapplied to the transform LUT to convert it to the applicable outputcolor value. If an exact match is found in the matrix of color valuescontained in the LUT, that value is used to render the color in thetarget device's color space. Specifically, this involves the selectionof the percentages of ink available in the color set (e.g., CMYK) neededto most accurately reproduce the specified source color. If an exactmatch is not found in the transform LUT, a transform value is createdfor the requested source color. This is done by the target device'soperating software, which performs an interpolation from the closest setof color values in the LUT to the specified source color to render theoutput color.

[0014] An ICC profile is a description of the color rendering abilitiesof a particular target device, or printer. The ICC profile defines thegamut, or color range, of a target device, as well as how the devicedistorts color. ICC profiles make it possible to describe the colorreproduction capabilities of devices manufactured by countless differentvendors in a standard, portable format.

[0015] When an ICC workflow is used, a graphics application (e.g., AdobePhotoShop) sends color data to the target device (e.g., server/printer)in the form of color separations: one separation for each process colorused. Since the ICC profiles of the various devices have ensured thatall necessary color correction has been applied, the target device, suchas a printer sold under Assignee's trademark ColorMark, and inparticular, Assignee's 8-color or 12-color printers, does not make anychanges to the color data as it is processed to render a printed image.

[0016] Assignee's current state of the art printers create ICC profilesin the same manner as creating a transform. Both the transforms and ICCprofiles may be created simultaneously, regardless of which type ofcolor management the user prefers. An ICC profile may have a fileextension of *.ICM, while another custom creatable transform may have anextension of *.CX. The end user incorporates generated ICC profiles intotheir ICC workflow by uploading the ICC files via an FTP link betweenthe print server and their workstation.

[0017] Applicant has found that the state of the art has certaindeficiencies, such as the fact that only a few graphics applicationscould use the ICC profiles created by the present assignee's state ofthe art system, sold under the trademark ColorMark+, especially withregard to extended process colors. This is because the ICC standardcalls for the application to generate the color separations used by thetarget device (i.e., one separation for each process color used) and fewgraphics applications recognize more than four-color (CMYK) or six-color(CMYKRO) printers. In these cases, the user may be constrained to createimages for printing using RGB color space and the transforms created bythe present assignee's state of the art system, although the user couldconfigure the desired printer, such as the present assignee'sColorMark+printer, to use only 4-color or 6-color ink sets. Also, theICC standard does not accommodate the use of spot colors: any spot colorchosen in the application must be given its own color separation, whichwill not be understood by the system server.

[0018] Because ICC profiles are platform-independent (not to be confusedwith device-independent), some vendors have produced third-partysoftware for creating ICC profiles of a given target device. Theprofile-creation process usually consists of printing a set of colorsamples for the target device, measuring the samples colormetrically,and then comparing the device's actual values with the desired valuesfor the color samples. This approach for creating ICC profiles is lessthan desirable for two reasons. First, in order for profiling to workcorrectly, the device must produce its output without any additionalcolor correction applied. However, for example, the print servermarketed and sold under the trademark ColorSpan always applies colorcorrection to printed output, except when ICC profiles have beenselected. Second, even when using an ICC workflow, a correspondingcustom transform must be selected on the server.

[0019] Therefore a new system and methodology for creating improvedcustom transforms is desired.

OBJECTS AND ADVANTAGES OF THE PRESENT INVENTION

[0020] Accordingly, it is an object of the present invention to providean improved methodology to create custom ink/media transforms forprinters.

[0021] Another object of the present invention is to permit theselection of any combination of supported inks for creating a customink/media transform (e.g., C2M3YKR).

[0022] Yet another object of the present invention is to providepredictable color matching that avoids conditions leading to creation of“hard dots” in light-tone areas for mapped colors.

[0023] Still another object of the present invention is to support apractical workflow for the generation of custom transforms based on areasonable number of color samples per ink set, while still producingaccurate color matching.

[0024] Another object of the present invention is to provide for smoothcolor and tone transitions throughout the target device's color spacefor each ink/media combination.

[0025] Yet another object of the present invention is to provide a rangeof user controls that can be applied to modify the output image (c.f.,post-RIP processing) in meaningful and stable ways.

[0026] And still another object of the present invention is to providefor good neutral gray tones.

[0027] Further objects and advantages of this invention will become moreapparent from a consideration of the drawings and ensuing description.

SUMMARY OF THE INVENTION

[0028] The present invention is directed to an improved system andmethodology for generating ink/media transforms. A simplified flowchartsetting forth a preferred methodology for carrying out the presentinvention is set forth in FIG. 13 and in the ensuing detaileddescription. Further details for carrying out the present invention areadditionally illustrated in the accompanying figures.

[0029] Generally speaking, a method of generating an ink/media transformfor a target device in accordance with the present invention comprisesthe steps of selecting the ink type; selecting the color set; selectingthe media type; selecting the ink saturation level; generating a set oflinearization ramps; measuring the linearization ramps; generating a setof target patches; measuring the target patches; screening the targetpatches and generating the boundary surface of the gamut for the targetdevice; implementing under-color removal and black generation; andbuilding the transform. Further steps to more particularly carry out theinvention are further set forth in the claims.

[0030] In one particular methodology, the generating of an ink/mediatransform for a target device in which an ink type, a color set mediatype and an ink saturation level have all been selected, a set oflinearization ramps have been generated and measured, and a set oftarget patches have been generated and measured, may comprise the stepsof: screening the set of target patches, wherein each generated patchhas corresponding Lab values, wherein the step of screening eachgenerated target patch comprises the steps of: (a) accepting a patchhaving a threshold lightness value (L) value for a preselected inkcoverage value and discarding patches having an ink coverage value thatis higher than the threshold lightness value (L); (b) accepting a patchhaving at least a threshold chroma value for a preselected ink coveragevalue and discarding patches having an ink coverage value that is higherthan the threshold chroma value; (c) eliminating patches that contain anink coverage amount that is inconsistent with the specified hue value;(d) identifying and discarding patches that satisfy the criterions ofboth containing 100% of a non-primary color and containing less than100% of a non-primary ink that comprises the color; (e) identifying anddiscarding patches that satisfy the criterions of both containing 75% ofthe non-primary color and containing less than 75% of the non-primaryink that comprises the color; and (f) repeating steps (d) and (e) forall non-primary color ink levels of the color set; (g) eliminatingpatches with color values that include pure black ink; determining thein-gamut and out-of-gamut colors for the transform by using a3-dimensional Delauney Tessellation, wherein each vertice corresponds toa coordinate point position of a target patch, and the final gamutboundary re-shaping method used in the profile building process;performing 3-dimensional interpolation from nearby vertices whentransforming color values for colors that are not directly representedin the LUT data set; and building the transform includes the steps of:constructing a hypercube of dimensions 15×15×15 uniformly spaced pointsin the CIELab color space; creating a look-up table containing atransformation value for each of the selected color patch values byindexing the corresponding Lab values to corresponding coordinates inthe color space; and implementing a baricentric interpolation andgamut-mapping procedure to fill out the transform LUT with a completeset of values.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0031] Generally speaking, a preferred methodology for carrying out thepresent invention of creating customized ink/media transforms, comprisesone or more of the following steps: selecting the ink type; selectingthe color set; selecting the media type; selecting the ink saturationlevel; generating a set of “linearization” color samples, or “ramps”;measuring the linearization ramps; generating a set of “target” colorsamples, or “patches”; measuring the target patches; screening thetarget patches and generating the boundary surface of a printer's gamut;implementing an under-color removal (ICR) and black generation (BG); andbuilding the Printer Profile, Transforms and ICC Color Profiles. Detailsof the foregoing steps, taken in connection with the details of thefigures, will now be described.

[0032] Selection of the Ink Type (Step 10) zThe ink type that will beused in creating the ink/media transform is chosen. Currently, the inktype selected can be for dye-based, pigment-based, or multi-densityblack process color inks.

[0033] Selection of the Color Set (Step 20)

[0034] The color set that will be used in creating the ink/mediatransform is then chosen. The color sets most readily available are4-ink color set (CMYK), 6-ink color set (C2M2YK), 8-ink color set(CMYKROGB), and 12-ink color set (C3M3YKROGB). An arbitrary set of inkcolor combinations may be chosen for use with a media in creating acustom transform.

[0035] Once an arbitrary set of ink colors has been selected, the colorset is examined to determine a set of primary inks to use. Thetraditional process color primaries are cyan, magenta and yellow (CMY).Black (K) ink is often added later to reduce ink usage in dark areas,and to extend the gamut in the dark region. However, in accordance withthe present invention, use of the traditional CMY primaries is notrequired. In accordance with the present invention, the optimum set ofprimaries are selected for the ink set provided. For example, if thefour inks chosen are red, orange, cyan and blue, the color engine willpick cyan as the cyan primary, red as the magenta primary, and orange asthe yellow primary. There is no black ink and blue is the onlynon-primary color used.

[0036] Selection of the Media Type (Step 30)

[0037] A media type that will be used in creating the ink/mediatransform is chosen. There are a wide variety of potential media tochoose from. These might include reflective media such as a coatedphotobase or vinyl, and transmissive media such as backlit film. Itshould also be noted that different media have different white points,reflection and ink absorption characteristics. This is why a separatetransform is created for each ink/media combination used on the printer.

[0038] Selection of the Ink Saturation Level (Step 40)

[0039] An ink saturation level that will be used in creating theink/media transform is chosen. This parameter is determined empiricallyfor the chosen media. A set of coverage samples for each of the inks inthe color set is printed with an increasing density, or saturation, ofink applied to produce a “ramp”. The user chooses the optimum inksaturation for each color based on a number of visual criteria wellknown in the art. Too much ink can cause image artifacts such asbleeding, show-through, wrinkled surface texture and haze. Too littleink reduces the color gamut for the ink/media transform being createdand can result in image reproduction with colors that look dull orfaded. The ink saturation scale ranges from 0-400% coverage; however,the maximum ink level selected seldom exceeds an actual value of 250%coverage.

[0040] Generation and Measuring of the Linearization Ramps (Step 50)

[0041] Each ink color that will be used in creating the ink/mediatransform must “linearized”. To accomplish this, a small set of densitycolor samples, or “ramps” (FIG. 5), is printed for each of the inkcolors in the color set (usually 7 or 15 ink levels/ramp). The densitycolor samples are printed in a sequence having increasing ink density orsaturation—from nil density up to the maximum ink saturation levelchosen in the previous step. Seven patches are printed for each inkcolor.

[0042] The primary objective of linearizing the ink colors is todetermine the saturation levels that are compatible with the visualperception of the user. This is necessary because a given coverage ofink doesn't necessarily produce the perceived coverage. For example, adensity color sample that has 30% coverage using yellow ink (i.e., 30%of the pixels locations have yellow dots) may only appear to show 10%coverage. Conversely, a density color sample that has 50% coverage ofcyan ink may appear to show 70% coverage. A related objective is tocreate a uniform transition of color from a minimum to a maximumsaturation for each ink color in the color set.

[0043] The linearization ramps are measured using a color measurementdevice. For some printers, the measurement device is an on-board CCDcamera or photo-sensor, such as that described in U.S. application Ser.No. 09/260,925 filed Mar. 2, 1999, co-owned by the present assignee ofthe instant invention, and incorporated by reference as if fully setforth herein. Such a device reads and records the color data from thepatches automatically. Earlier printers used an external colormeasurement device, often called a color calibrator. Some commonly usedcolor measurement devices include the X-Rite DTP22 or DTP41/DTP41 Acolor calibrator, or the Greytag Spctroscan spectrophotometer.

[0044] Using either type of device, the “global” reflectance values(between 0.0 and 1.0) are taken for each of the pure color samples and alinearization is computed for each color.

[0045] Generation and Measuring of the “Target” Patches (Step 60)

[0046] Once the linearization ramps have been created, a large set of“target” color samples, or patches, is printed using both the “pure” inkcolors for the chosen color set, as well as colors built from inkcombinations (FIG. 6). The patches are printed across the range ofproducible colors to encompass the printer's color gamut (e.g., therange of reproducible colors for the device). The total number of targetpatches generated is a function of the chosen color set andink-saturation level, as selected by the user. In all cases, however,the color engine, constructed in accordance with the present invention,generates many more target patches than are actually needed to generatean efficient transform. By “efficient” is meant that the selection of aset of color values adequately represents the volume and boundaries ofthe printer's gamut (as represented within CIELab color space) for thegiven ink/media combination. At the same time, the color values areselected to occupy an even distribution of points throughout the colorspace, thus ensuring that the colors adhere to an acceptable a graybalance and to ensure that interpolated values used to complete the dataset are accurate.

[0047] The target color samples are measured using the on-board CCDcamera, or an external color measurement device (as described above).The CIElab values for each of the color samples is taken and stored in aworking file for post-processing by the color engine.

[0048] The primary objective in measuring the target patches andgenerating a data set of CIElab values is to render (or “build”) a colorgamut that represents the operational limits of the printer for theink/media combination being used. A subset of target patches will beselected, or “screened”, that will best represent the volume and surfaceboundaries of the ink/media gamut in CIELab color space. Hence, not allthe color samples printed will be used in generating an ink/media colortransform.

[0049] Selection Criteria For the Gamut Boundary Generation (Step 70)

[0050] In accordance with the present invention, an initial set oftarget patches is then created. Usually not all the patches are used inthe process of building the transform. The trick is to reduce the dataset and still produce an accurate, efficient representation of theprinter's gamut for that ink/media combination. This is the key toproducing a good transform. The subset is chosen to provide a data setof likely candidates that will represent every region of the printer'sgamut no matter what the characteristics of the ink and media might be.For example, many patches may have Lab values that are very close toeach other, but have been produced using entirely different inkcombinations. Leaving these conflicting color values in the finaltransform will produce irregular or uneven color transitions in printedoutput. In areas near the neutral axis, especially in the lighterneutrals, selection of primary colors (CMY) should take precedence overnon-primary colors to ensure that reproducible colors are fully capturedby the gamut. In dark areas of the gamut, black ink must be introducedevenly as colors get progressively darker, while other colors of ink arereduced commensurately. In all areas, the transform must produce smoothtransitions between similar colors to produce pleasing results in theprinted image.

[0051] The key to accurate colors and smooth transitions in the printedoutput is to remove the color data for target patches that don't fit.

[0052] This is important in employing the final transform to produceaccurate color conversions for interpolated color values; that is, whencreating values to complete the LUT data set by interpolating from knownvalues. This is also important when considering the wide range ofvariation in color values that represent different ink/mediacombinations. For example, a media such as vinyl has a small gamut whencompared to a photobase gloss coated paper. A dark color printed onvinyl might have an L value of 40, while a similar color printed onphotobase gloss paper might have an L value of 4. Obviously, it becomesquite important to select a data set that is representative of theprinter's color gamut as it applies to the ink/media combination beingused. To further complicate matters, on different types of media 100%coverage of black ink may have a much larger or a much smaller L valuethan other dark ink combinations. Accordingly, a set of screeningfilters is employed to select a subset of color patches that accomplishthis goal.

[0053] An L-value screen process is applied to both the primary (CMY)and non-primary (ROGB) colors (FIG. 7). The objectives here are toeliminate “hard dots” in the lighter color areas, to produce goodneutral tones, and to ensure good contrast in the lighter ink colors.The first step of the process consists in the adjustment of the neutralaxis, by shifting the white and the darkest patch (lowest L point) suchthat the neutral axis will be along the direction of L. This is a resultof converting the Lab values for the patches to CIEXYZ values andsubsequently resetting them to back to CIELab values. Using thisprocedure one conserves the neutrality of the black-white axis andachieving a good contrast in the bright region (large L region of theCIELAB color space).

[0054] Next, a chroma screen is applied only to non-primary (ROBG)colors (FIG. 8). The purpose of this screen is to ensure that onlyprimary colors are used near the neutral areas of the gamut; that is, itis not preferable to use non-primary inks to reproduce colors whereprimary inks will suffice because non-primary inks are needed to extendthe gamut volume. The core of the gamut is where the primaries alone areused, with CMY colors residing at the top and middle of the gamut andblack gradually filling in at the bottom. Non-primaries are restrictedto the outside portions of the gamut, in the area surrounding the core,adding additional gamut volume and surface area near their respectivenatural hues. The chroma screen helps to ensure that the non-primarycolors are used mostly at the outer boundaries of the gamut, less oftenin the middle areas, very little near the gamut core, and not at allwithin the core itself where the primary colors are dominant. Any colorpatches with values that violate these criteria are discarded.

[0055] The next step is to apply a hue screen, again only to non-primary(ROGB) colors (FIG. 9). The hue screen eliminates color patches having ahue that is inconsistent with the specified hue for that particularcolor process, and thus might skew the final transform. For example, apatch with a red hue that contains 100% green ink is discarded (thesehues occupy diametrical positions along the red-green hue axis in CIElabcolor space).

[0056] Shell screening is the key to selecting those target patches thatwill contribute to the final data set and those that won't. It isapplied only to the non-primary (ROGB) colors. Target patches aregenerated with non-primary (ROGB) consist of a mixture with primarycolors (CMY not black (K)) and receive for example, 25%, 50%, 75% and100% ink levels. A first order selection is made using for patches thatcontain 100% of the non-primary color. Obviously, this will generate atiny gamut. However, any target patch whose color values fall withinthis small gamut and which contains less than 100% of the non-primaryink will be discarded. A second order selection is made for patches thatcontain 75% of the non-primary ink. The gamut areas is now somewhatlarger, but again any target patch whose color values fall within thegamut and which contain less than 75% of the non-primary ink will bediscarded. This process is repeated for all non-primary color ink levelsof the color set. Once it is complete, many aliases (the same colorpatch with different ink combinations) will be removed and the remainingdata set will be “regularized” to provide smooth transitions into andout of the non-primary areas of the gamut.

[0057] The next screen is the dark patch removal (FIG. 10) and isapplied only to the primary (CMY) colors. The first part of thisscreening process is accomplished by eliminating patches with colorvalues that include a non-zero value for K (black) ink only (pure blackpatches). The last part of the dark patch removal process is the discardof the CMYK patches that have large chroma value. Only the CMYK patcheshaving minimum chroma and separated by at least ΔE=2 apart are been usedin the transform building process.

[0058] Rendering the Gamut (Step 80)

[0059] As stated previously, the primary objective in measuring thetarget patches and generating a CIELab data set is to render (or“build”) a color gamut that represents the operational limits of theprinter for the ink/media combination being used. A preferred carriageassembly for an ink jet print engine that may be used with such aprinter is described in U.S. Pat. No. 6,290,332 and incorporated byreference as if fully set forth herein.

[0060] Consequently, once the target patches have been screened and thedata reduced to a subset that best represents the volume and surfaceboundaries of the ink/media gamut in CIELab color space, the data set isadjusted, or shifted, to achieve a good perceptual uniformity withrespect to the color appearance. This is accomplished by implementingthe rendering intent, which by default is selected for perceptualrendering intent (see below). For each of the various rendering intentsdescribed below, with the exception of absolute calorimetric rendering,the white point of the paper (or of a white target of the printerengine) and the black point are shifted to match the L-axis of Lab colorspace (L-0 =black; L-100=white). The Lab values for the final data setare converted to XYZ color space and back again to CIELab color space.

[0061] There are four types of rendering intent considered in theprofile building process, namely:

[0062] Perceptual−renders the closet possible perceptual color matchwhile preserving subtle color relationships by compressing the entiregamut and shifting all colors into the printable region. This option isused to print color photographic images.

[0063] Saturation−maintains the original image color saturation whenmaking the gamut-to-gamut conversion into the target color space. Thisoption is primarily used to reproduce charts, graphs and businessimages.

[0064] Relative Colorimetric−remaps out-of-gamut colors to the closestreproducible color of the target device, or printer, without affectingthe other in-gamut colors. This option can cause two colors in thesource color space to merge into the same color in the device colorspace.

[0065] Absolute Colorimetric−remaps colors identically without makingadjustment for the white point or black point that would affect imagebrightness.

[0066] Next, to determine the gamut boundaries of the printer for theselected ink/media combination, a computational geometry is needed torender the target patch data (CIElab values) as a 3D model within CIELabcolor space. This model will allow us to determine the in-gamut andout-of-gamut colors for the printer for the ink/media combination.

[0067] Preferably, a convex hull generator is used to create the model.The 4-dimensional convex hull generator produces a 3-dimensionalDelauney Tessellation (see FIG. 11) that produces a space filled withtetrahedra, wherein each vertex corresponds to a coordinate pointposition of the color data set and representing a target patch.

[0068] Since in general the natural color gamut boundaries of a printerare not convex, we use a final boundary procedure to re-shape the convexgamut boundary generated by the 3-dimensional Delauney Tessellationprocedure. Our final boundary reshaping method generates a new boundary,which is closer to the natural gamut boundary surface of the printer.This closed new boundary surface of the gamut is in general concave.

[0069] This model provides for easy tri-linear (3-dimensional)interpolation from nearby vertices when transforming color values forcolors that are not directly represented in the LUT data set. It alsohelps to ensure that similar colors will reside nearby one another inthe color space model.

[0070] Implementation of Under-Color Removal (UCR) and Black Generation(Step 90)

[0071] UCR/GCR are black generation (BG) functions that control how muchblack ink is used to produce non-neutral colors. By default, the colorengine adds black ink only in the very dark (shadow) region of the colorgamut. The actual range of L-values for this region are ink/mediadependent. The color engine provides the user with controls that allowadjusting the GCR/UCR values of the rendered image as desired. We alsouse a smoothing curve to achieve a smooth transition in the dark regionalong any direction (ray) of the CIELab color space, without losingdetails of the shadow region.

[0072] Building the Printer Profile, Transforms and ICC Color Profiles(Step 100)

[0073] The final number of target patches used to build the transformLUT is actually small by comparison with the number of target patchesread. For straight CMY process colors, an efficient and accuratetransform requires color values from around 180 patches. For multiplecolor transforms, a few more patches per non-primary color are required,but the total number remains in the 200-300 range, even for n-colortransforms. As non-primary color patches are selected for inclusion inthe final data set, CMY patches are removed, keeping the total numberlow. This does not imply that a set of 300 target patches may bepre-selected, printed and measured to obtain the same result. The entirerange of target patches must be printed and the screening methods justdescribed must be applied to select the best data set for the chosenink/media combination.

[0074] The final data set contains all of the CIElab values for theselected target patches that are used to construct the transform LUT.This data is then indexed to coordinates in the reference color space(CIELab). That is, each entry point in the LUT is also a coordinatepoint in the reference color space (see FIG. 12). In most cases, anygiven source color value (i.e. a color we are trying to match in theprinted output) will not have a direct correspondence the entry pointsin the LUT (coordinate points in the reference color space). Instead,the source color's coordinates will lie between points in the LUT and acalculation must be performed to identify its actual location. In thesecases, a tri-linear interpolation is performed to find the coordinatelocation from the coordinate values of surrounding LUT entries.Interpolation is preferably used in order to keep the size of the LUTreasonably small: if all source colors were directly represented in a3-dimensional LUT, the LUT would need to contain 2²⁴ entries.

[0075] Conversion from the CIELab color space to a device color space(e.g., CMYK, C2M2YK, C3M3YK, or C3M3YKROGB) is performed in two stages:

[0076] The first stage is to construct a hypercube of dimensions15×15×15 uniformly spaced points in the CIELab color space (the limitsof CIELab space being (0<=L<=100, 128<=a<=127, −128<=b<=127). Next,create a look-up table (LUT) containing a transformation value for eachof the selected color patch values by indexing the corresponding Labvalues to corresponding coordinates in the color space (e.g., 3->8 [or4,6,7, depending on the dimension of the color set previously chosen]).Finally, implement a baricentric interpolation and gamut-mappingprocedure to fill out the transform LUT with a complete set of values.From this data, the ICC profile (*.ICM) is created.

[0077] Second, extend the 15×15×15 hypercube to a 100×100×100 hypercubeto create the printer's transform file (*.CX). This is accomplishedusing a tri-linear interpolation method, wherein a color point is foundfrom the vertices of a tetrahedron that falls within the color spacetessellation. Creating a cube the size of the ICC cube and then scalingit up linearly to the CX file size provides the best correspondencebetween an ICC profile and a transform LUT, especially when printingcolor ramps using the *.CX file. So we generate the ICC cube first. Foreach Lab points within the ICC cube, we attempt to interpolate the inkvalues from the tessellation. For Lab points outside the tessellation,we use a gamut-mapping algorithm. The gamut-mapping algorithm attemptsto locate a position on the gamut edge that is at the same hue angle andprovides the “most appropriate” result. Once all the data points havebeen filled in, then we are able to write out the ICC file. It is thisfile that gets uploaded by the user to the workstation. Afterwards, wecan scale up the ICC cube to the size needed for the transform LUT andwrite that out as a *.CX file for use by the printer.

[0078] It can thus be seen that, among other things, the presentinvention provides an improved methodology and system for creatingcustom ink/media transforms for printers, permits the selection of anycombination of supported inks for creating a custom ink/media transform,provides predictable color matching that avoids conditions leading tocreation of “hard dots” in light-tone areas for mapped colors, supportsa practical workflow for the generation of custom transforms based on areasonable number of color samples per ink set, while still producingaccurate color matching, provides for smooth color and tone transitionsthroughout the target device's color space for each ink/mediacombination, provides a range of user controllable options that can beapplied to modify the output image (c.f., post-RIP processing) inmeaningful and stable ways, and provides for good neutral gray tones.

[0079] From the foregoing disclosure, it will be appreciated that thepresent invention is an enhancement to the print server software andsystem currently used and marketed under the ColorSpang trademark. Whileit will be appreciated that the present invention is widely applicableand implementable, to best appreciate the present invention, it ispreferable to be used in combination with one or more of the followinghardware platforms, namely the ColorMark Pro 1.5G, RIPStation 1G;ColorMark Pro 1G/8000, RIPStation 700/800; ColorMark Pro 7000/5000,RIPStation 500 or ColorMark Pro 4000, RIPStation 400. Furthermore, useof the present invention with one or more of the following externaldevices is preferred, namely, GretagMacbeth Spectrolinospectrophotometer and SpectroScan x/y table; X-Rite DTP41 or DTP41Tauto-scanning spectrophotometer, the onboard CCD camera on the ColorSpanDisplayMaker® Esprit and DisplayMaker Series XII printers; and theColorMark Calibrator. Lastly, profiles using the present invention arepreferably created on one or more of the following printers, namely theDisplayMaker Mach 12; the DisplayMaker Series XII; the DisplayMakerEsprit and the DisplayMaker FabriJet XII.

[0080] It will thus be seen that the objects set forth above, amongthose made apparent from the preceding description, are efficientlyattained and, since certain changes may be made in the above methodologyand system without departing from the spirit and scope of the invention,it is intended that all matter contained in the above description orshown in the accompanying drawings shall be interpreted as illustrativeand not in a limiting sense.

What is claimed is:
 1. A method of generating an ink/media transform fora target device, comprising the steps of: selecting the ink type;selecting the color set; selecting the media type; selecting the inksaturation level; generating a set of linearization ramps; measuring thelinearization ramps; generating a set of target patches; measuring thetarget patches; screening the target patches and generating the boundarysurface of the gamut for the target device; implementing under-colorremoval and black generation; and building the transform.
 2. The methodas claimed in claim 1, wherein each generated patch has correspondingLab values, wherein the step of screening each generated target patchcomprises the step of: accepting a patch having a threshold lightnessvalue (L) value for a preselected ink coverage value and discardingpatches having an ink coverage value that is higher than the thresholdlightness value (L).
 3. The method as claimed in claim 2, including thestep of: converting the Lab values for each patch to CIEXYZ values, andsubsequently resetting them to back to CIELab values.
 4. The method asclaimed in claims 1 or 2, wherein the step of screening each generatedtarget patch comprises the steps of: accepting a patch having at least athreshold chroma value for a preselected ink coverage value anddiscarding patches having an ink coverage value that is higher than thethreshold chroma value.
 5. The method as claimed in claims 1, 2 or 4,including the step of eliminating patches that contain an ink coverageamount that is inconsistent with the specified hue value.
 6. The methodas claimed in claims 1, 2, 4 or 5, including the steps of: (a)identifying and discarding patches that satisfy the criterions of bothcontaining 100% of a non-primary color and containing less than 100% ofa non-primary ink that comprises the color; (b) identifying anddiscarding-patches that satisfy the criterions of both containing 75% ofthe non-primary color and containing less than 75% of the non-primaryink that comprises the color; and repeating steps (a) and (b) for allnon-primary color ink levels of the color set.
 7. The method as claimedin claim 6 including the steps of: eliminating patches with color valuesthat include pure black ink.
 8. The method as claimed in claim 1,including the step of determining the in-gamut and out-of-gamut colorsfor the transform by using a 3-dimensional Delauney Tessellation,wherein each vertice corresponds to a coordinate point position of atarget patch.
 9. The method as claimed in claim 8, including the step ofperforming 3-dimensional interpolation from nearby vertices whentransforming color values for colors that are not directly representedin the LUT data set.
 10. The method as claimed in any one of theproceeding claims, wherein the step of building the transform includesthe steps of: constructing a hypercube of dimensions 15×15×15 uniformlyspaced points in the CIELab color space; creating a look-up tablecontaining a transformation value for each of the selected color patchvalues by indexing the corresponding Lab values to correspondingcoordinates in the color space; implementing a baricentric interpolationand gamut-mapping procedure to fill out the transform LUT with acomplete set of values.
 11. The method as claimed in claim 10, includingthe step of: extending the 15×15×15 hypercube to a 100×100×100 hypercubeto create a transform file by the use of tri-linear interpolationwherein a color point is found from the vertices of a tetrahedron thatfalls within the color space tessellation.
 12. The method as claimed inclaims 10 or 11, including the steps of providing correspondence betweenan ICC profile and a custom transform by creating a cube the size of theICC cube and then scaling it up linearly.
 13. The method as claimed inclaim 12, including the step of interpolating the ink values from thetessellation by using a gamut-mapping algorithm for Lab points outsidethe tessellation, in which the gamut-mapping algorithm attempts tolocate a position on the gamut edge that is at the same hue angle andprovides the “most appropriate” result.
 14. A method of generating anink/media transform for a target device in which an ink type, a colorset media type and an ink saturation level have all been selected, a setof linearization ramps have been generated and measured, and a set oftarget patches have been generated and measured, the method comprisingthe steps of: screening the set of target patches, wherein eachgenerated patch has corresponding Lab values, wherein the step ofscreening each generated target patch comprises the steps of: (a)accepting a patch having a threshold lightness value (L) value for apreselected ink coverage value and discarding patches having an inkcoverage value that is higher than the threshold lightness value (L);(b) accepting a patch having at least a threshold chroma value for apreselected ink coverage value and discarding patches having an inkcoverage value that is higher than the threshold chroma value; (c)eliminating patches that contain an ink coverage amount that isinconsistent with the specified hue value; (d) identifying anddiscarding patches that satisfy the criterions of both containing 100%of a non-primary color and containing less than 100% of a non-primaryink that comprises the color; (e) identifying and discarding patchesthat satisfy the criterions of both containing 75% of the non-primarycolor and containing less than 75% of the non-primary ink that comprisesthe color; and (f) repeating steps (d) and (e) for all non-primary colorink levels of the color set; (g) eliminating patches with color valuesthat include pure black ink; determining the in-gamut and out-of-gamutcolors for the transform by using a 3-dimensional Delauney Tessellation,wherein each vertice corresponds to a coordinate point position of atarget patch, and the final gamut boundary re-shaping method used in theprofile building process; performing 3-dimensional interpolation fromnearby vertices when transforming color values for colors that are notdirectly represented in the LUT data set; and building the transformincludes the steps of: constructing a hypercube of dimensions 15×15×15uniformly spaced points in the CIELab color space; creating a look-uptable containing a transformation value for each of the selected colorpatch values by indexing the corresponding Lab values to correspondingcoordinates in the color space; implementing a baricentric interpolationand gamut-mapping procedure to fill out the transform LUT with acomplete set of values.
 15. The method as claimed in claim 14, includingthe step of extending the 15×15×15 hypercube to a 100×100×100 hypercubeto create a transform file by the use of tri-linear interpolationwherein a color point is found from the vertices of a tetrahedron thatfalls within the color space tessellation.
 16. The method as claimed inclaim 15, including the step of interpolating the ink values from thetessellation by using a gamut-mapping algorithm for Lab points outsidethe tessellation, in which the gamut-mapping algorithm attempts tolocate a position on the gamut edge that is at the same hue angle andprovides the “most appropriate” result.